package com.ziyun.pop.web.modules.goods.controller;

import com.utility.JsonUtils;
import com.utility.New;
import com.utility.http.HttpUtils;
import com.ziyun.pop.common.utils.UserUtils;
import com.ziyun.pop.modules.goods.entity.GoodsImageEntity;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.R;
import io.renren.common.validator.ValidatorUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.Map;


/**
 * 图片表
 *
 * @author
 * @email
 * @date 2018-08-29 08:42:27
 */
@RestController
@RequestMapping("goodsImage/goodsimage")
public class GoodsImageController {


    @Value("${erpApi}")
    private String erpApi ;
//
//
//    /**
//     * 列表
//     */
//    @RequestMapping("/list")
//    @RequiresPermissions("goodsImage:goodsimage:list")
//    public R list(@RequestParam Map<String, Object> params){
//        PageUtils page = goodsImageService.queryPage(params);
//
//        return R.ok().put("page", page);
//    }
//
//
//    /**
//     * 信息
//     */
//    @RequestMapping("/info/{id}")
//    public R info(@PathVariable("id") Long id){
//        GoodsImageEntity goodsImage = goodsImageService.selectById(id);
//
//        return R.ok().put("goodsImage", goodsImage);
//    }
//
//    /**
//     * 保存
//     */
//    @RequestMapping("/save")
//    public R save(@RequestBody GoodsImageEntity goodsImage){
//
//        goodsImageService.insert(goodsImage);
//
//        return R.ok();
//    }
//
//    /**
//     * 修改
//     */
//    @RequestMapping("/update")
//    public R update(@RequestBody GoodsImageEntity goodsImage){
//        ValidatorUtils.validateEntity(goodsImage);
//        goodsImageService.updateAllColumnById(goodsImage);//全部更新
//
//        return R.ok();
//    }
//
//    /**
//     * 删除
//     */
//    @RequestMapping("/delete")
//    public R delete(@RequestBody Long[] ids){
//        goodsImageService.deleteBatchIds(Arrays.asList(ids));
//
//        return R.ok();
//    }

    /**
     * 保存
     */
    @RequestMapping("/saveImage")
    public R saveImage(@RequestBody GoodsImageEntity goodsImage){
        goodsImage.setCreateName(UserUtils.getCurentUser().getUsername());
        String path = "/goodsImage/goodsimage/saveImage";
        Map<String, Object> map = New.hashMap();
        map.put("goodsImage",goodsImage);
        Map<String, Object> resultMap = remoteProcedureCall(map, path);
//        goodsImage.setCreateName(UserUtils.getCurentUser().getUsername());
//        goodsImageService.saveImage(goodsImage);
        return R.ok().put("id",resultMap.get("id"));
    }

    /**
     * 远程调用方法封装
     * @param params
     * @return
     */
    private Map<String, Object> remoteProcedureCall(@RequestParam Map<String, Object> params,String path) {
        String url = erpApi + path;
        Map<String, Object> paramHeaderMap = New.hashMap();
        Map<String, Object> paramBodyMap = New.hashMap();
        paramBodyMap.put("params",params);
        String response = HttpUtils.doPost(url, paramHeaderMap, JsonUtils.map2String(paramBodyMap));
        return com.ziyun.pop.common.utils.JsonUtils.jsonToMap(response);
    }

}
